class_name OutlineHighlighter
extends Node
## 版本：1.0.0
## 功能：CanvasGroup 节点的外轮廓高亮。
## 使用：将所有构成整体的 Sprite2D 节点放置在 CanvasGroup 节点下，给 CanvasGroup 节点添加 2d_outline_shader.tres 材质，配置导出变量。

#region Exported parameters
## 应用外轮廓高亮的对象
@export var visuals: CanvasGroup

## 高亮颜色
@export var outline_color: Color

## 高亮的宽度
@export_range(1, 10) var outline_thickness: int
#endregion


func _ready() -> void:
	visuals.material.set_shader_parameter("line_color", outline_color)


## 清除轮廓高光
func clear_highlight() -> void:
	visuals.material.set_shader_parameter("line_thickness", 0)


## 启用轮廓高光
func highlight() -> void:
	visuals.material.set_shader_parameter("line_thickness", outline_thickness)
